package com.procurement.material.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.system.api.domain.PcmSupplier;
import com.ruoyi.system.api.domain.SysUser;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.core.annotation.Excel;
import com.ruoyi.common.core.web.domain.BaseEntity;

/**
 * 物料价格对象 pcm_material_price
 * 
 * @author liyang
 * @date 2023-12-05
 */
public class PcmMaterialPrice extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 物料价格编号 */
    private Long materialPriceID;

    /** 询报价需求编号 */
    @Excel(name = "询报价需求编号")
    private String quotationID;

    /** 产品编号 */
    @Excel(name = "产品编号")
    private String productNumber;

    /** 产品名称 */
    @Excel(name = "产品名称")
    private String productName;

    /** 产品分类 */
    @Excel(name = "产品分类")
    private Long Category;

    /** 供应商 */
    @Excel(name = "供应商")
    private Long supplierID;

    /** 有效价格 */
    @Excel(name = "有效价格")
    private BigDecimal effectivePrice;

    /** 价格开始日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "价格开始日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date priceStartDate;

    /** 价格结束日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "价格结束日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date priceEndDate;

    /** 提交人 */
    @Excel(name = "提交人")
    private Long submitter;

    /** 提交时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "提交时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date submissionTime;

    /** 产品分类 */
    @Excel(name = "产品分类")
    private Long productCategory;

    /**物料表关联**/
    private PcmMaterialRecord pcmMaterialRecord;

    /**提交人表关联**/
    private SysUser sysUser;

    /**供应商表关联**/
    private PcmSupplier pcmSupplier;

    public PcmMaterialRecord getPcmMaterialRecord() {
        return pcmMaterialRecord;
    }

    public void setPcmMaterialRecord(PcmMaterialRecord pcmMaterialRecord) {
        this.pcmMaterialRecord = pcmMaterialRecord;
    }

    public PcmSupplier getPcmSupplier() {
        return pcmSupplier;
    }

    public void setPcmSupplier(PcmSupplier pcmSupplier) {
        this.pcmSupplier = pcmSupplier;
    }

    public SysUser getSysUser() {
        return sysUser;
    }

    public void setSysUser(SysUser sysUser) {
        this.sysUser = sysUser;
    }

    public void setMaterialPriceID(Long materialPriceID) 
    {
        this.materialPriceID = materialPriceID;
    }

    public Long getMaterialPriceID() 
    {
        return materialPriceID;
    }
    public void setQuotationID(String quotationID) 
    {
        this.quotationID = quotationID;
    }

    public String getQuotationID() 
    {
        return quotationID;
    }
    public void setProductNumber(String productNumber) 
    {
        this.productNumber = productNumber;
    }

    public String getProductNumber() 
    {
        return productNumber;
    }
    public void setProductName(String productName) 
    {
        this.productName = productName;
    }

    public String getProductName() 
    {
        return productName;
    }
    public void setCategory(Long Category) 
    {
        this.Category = Category;
    }

    public Long getCategory() 
    {
        return Category;
    }
    public void setSupplierID(Long supplierID) 
    {
        this.supplierID = supplierID;
    }

    public Long getSupplierID() 
    {
        return supplierID;
    }
    public void setEffectivePrice(BigDecimal effectivePrice) 
    {
        this.effectivePrice = effectivePrice;
    }

    public BigDecimal getEffectivePrice() 
    {
        return effectivePrice;
    }
    public void setPriceStartDate(Date priceStartDate) 
    {
        this.priceStartDate = priceStartDate;
    }

    public Date getPriceStartDate() 
    {
        return priceStartDate;
    }
    public void setPriceEndDate(Date priceEndDate) 
    {
        this.priceEndDate = priceEndDate;
    }

    public Date getPriceEndDate() 
    {
        return priceEndDate;
    }
    public void setSubmitter(Long submitter) 
    {
        this.submitter = submitter;
    }

    public Long getSubmitter() 
    {
        return submitter;
    }
    public void setSubmissionTime(Date submissionTime) 
    {
        this.submissionTime = submissionTime;
    }

    public Date getSubmissionTime() 
    {
        return submissionTime;
    }
    public void setProductCategory(Long productCategory) 
    {
        this.productCategory = productCategory;
    }

    public Long getProductCategory() 
    {
        return productCategory;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("materialPriceID", getMaterialPriceID())
            .append("quotationID", getQuotationID())
            .append("productNumber", getProductNumber())
            .append("productName", getProductName())
            .append("Category", getCategory())
            .append("supplierID", getSupplierID())
            .append("effectivePrice", getEffectivePrice())
            .append("priceStartDate", getPriceStartDate())
            .append("priceEndDate", getPriceEndDate())
            .append("submitter", getSubmitter())
            .append("submissionTime", getSubmissionTime())
            .append("updateTime", getUpdateTime())
            .append("productCategory", getProductCategory())
            .append("pcmMaterialRecord",getPcmMaterialRecord())
            .toString();
    }
}
